/**
 * Created by Universe.Zhou on 2017/3/10.
 */
/**
 *
 *----------Dragon be here!----------/
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃代码无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 **/

var time=0;

//是否暂停提示
var pasue=true;
//定时函数
var set_timer;

var d=new Array(10);

//div可移动的位置编号
var d_direct=new Array(
    [0],
    [2,4],
    [1,3,5],
    [2,6],
    [1,5,7],
    [2,4,6,8],
    [3,5,9],
    [4,8],
    [5,7,9],
    [6,8]
);

//div对应的位置
var d_posXY=new Array(
    [0],
    [0,0],
    [150,0],
    [300,0],
    [0,150],
    [150,150],
    [300,150],
    [0,300],
    [150,300],
    [300,300]
);

//初始位置,0表示空白块
d[1]=1;d[2]=2;
d[3]=3;d[4]=4;
d[5]=5;d[6]=6;
d[7]=7;d[8]=8;
d[9]=0;


//移动函数
function move(id) {
    var i=1;
    //for循环找出小div的位置
    for(i=1;i<10;++i){
        if(d[i]==id)
            break;
    }
    //保存div可以去的编号
    var target_d=0;
    target_d=whereCanTo(i);

    if(target_d!=0){
        //设置当前div为空
        d[i]=0;

        d[target_d]=id;
        //把Div移动到空块处
        document.getElementById("d"+id).style.left=d_posXY[target_d][0]+"px";
        document.getElementById("d"+id).style.top=d_posXY[target_d][1]+"px";
    }
   //true表示游戏完成
    var finsh_flag=true;

    for(var k=1;k<9;++k){
        if (d[k]!=k){
            finsh_flag=false;
            break;
        }
    }

    if(finsh_flag==true){
        if(!pasue)
            alert("恭喜过关");
    }

}

//根据div id判断是否可移动
function whereCanTo(cur_div) {

    var j=0;
    var move_flag=false;
    //遍历所有可能去的位置
    for(j=0;j<d_direct[cur_div].length;++j)
    {
        //如果目标位置为0，说明可以移动
       if(d[d_direct[cur_div][j]]==0)
       {
           move_flag=true;
           break;
       }
    }
    //可以移动返回目标位置的编号，否则返回0
    if(move_flag==true){
        return d_direct[cur_div][j];
    }else {
        return 0;
    }
}

//定时函数
function timer() {
    time+=1;
    var min=parseInt(time/60);
    var sec=time%60;
    document.getElementById("timer").innerHTML=min+"分"+sec+"秒";
}
//开始暂停函数
function start() {
    if(pasue){
        document.getElementById("start").innerHTML="暂停";
        pasue=false;
        set_timer=setInterval(timer,1000);//启动定时
    }else{
        document.getElementById("start").innerHTML="开始";
        pasue=true;
        clearInterval(set_timer)
    }
}

function reset() {
    time=0;
    if(pasue)
        start();
    moni();


}

//打乱方块函数
function random_d() {
    for(var i=9;i>1;--i){
        var to=parseInt(Math.random()*(i-1)+1);
        //把当前的DIV位置设置为随机产生的DIV的位置
        if(d[i]!=0){
            document.getElementById("d"+d[i]).style.left=d_posXY[to][0]+"px";
            document.getElementById("d"+d[i]).style.top=d_posXY[to][1]+"px";
        }

        if(d[to]!=0){
            document.getElementById("d"+d[to]).style.left=d_posXY[i][0]+"px";
            document.getElementById("d"+d[to]).style.top=d_posXY[i][1]+"px";
        }
        var tem=d[to];
        d[to]=d[i];
        d[i]=tem;
    }
}


window.onload=function () {

    reset();
/*moni();*/
}


function moni() {
    for (j=0;j<21;j++){
    for(i=0;i<d.length;i++){
       /* if (d[i]==0){

        }*/
     if(Math.random()>0.5)
           $("#d"+i).click();
    }
    }
}